package domain;

import java.util.ArrayList;

public class Team {
	
	private int numero;
	private Pista pista;
	private ArrayList<Auto> autitos;
	
	public Team(int cant, int numTeam, Pista pista){
		this.pista = pista;
		this.autitos = new ArrayList<Auto>(cant);
		this.numero = numTeam;
	}
	
	public ArrayList<Auto> initAutitos (int cantidad){
		ArrayList<Auto> autos = new ArrayList<Auto>(cantidad);
		for (int i = 1; i <= cantidad; i++){
			autos.add(i, new Auto(i, this));
		}
		return autos;
	}
	public void mover(Auto auto){
		//if (!auto.chocado()){
			pista.avanzar(auto);
		//}

		pista.listoParaMover(auto); // no se si es necesario pasar el auto
	}

	public void initAutos(int cantAutos, Tablero tablero) {
		Auto tmp;
		for (int i = 0; i < cantAutos; i++){
			System.out.println("cree el auto:" + i);
			tmp = new Auto(i, this);
			autitos.add(i, tmp);
			tablero.ubicarEnPosicionLibre(tmp);
		}
	}
	public void arrancar(){
		for (Auto a: autitos){
			a.start();
		}
	}

	public void cambiarDir(int idAuto, Direccion ndir) {
		autitos.get(idAuto).cambiarDireccion(ndir);
	}
	public int getNumero(){
		return this.numero;
	}
	public boolean equals(Team team){
		return this.numero == team.getNumero();
	}
	//debug
	public Auto getAutito(int i){
		return autitos.get(i);
	}

	public boolean hayGanador() {
		return this.pista.hayGanador();
	}

	synchronized public void repararAutos() {
		for (Auto a: autitos){
			a.arreglar();
		}
	}
	
}
